/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package model.dao;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import model.bean.BeanCurso;
import model.bean.BeanUsuario;
import model.daobase.DBase;

/**
 *
 * @author Jesus
 */
public class DaoCurso extends DBase {
    
    public ArrayList<BeanCurso> lista() {

        this.init_mysql();
        PreparedStatement pstmt = null;
        ResultSet res = null;
        ArrayList<BeanCurso> listaCursos = new ArrayList<BeanCurso>();

        try {

            String query = "SELECT * FROM curso";

            pstmt = conn.prepareStatement(query);
            res = pstmt.executeQuery();
            BeanCurso curso;
            while (res.next())
            {
               curso = new BeanCurso();
               curso.setIdcurso(res.getInt(1));
               curso.setCodigo(res.getString(2));
               curso.setNombre(res.getString(3));         
               curso.setIdciclo(res.getString(4));
               curso.setProfesor(res.getString(5));
                
               listaCursos.add(curso);
            }

            res.close();
            pstmt.close();
            conn.close();

        } catch (SQLException e1) {
            e1.getMessage();
        }

        return listaCursos;

    }
    
     public ArrayList<BeanCurso> buscar(String idciclo,String codigo,String nombre) {
         
        this.init_mysql();
        PreparedStatement pstmt = null;
        ResultSet res = null;
        
        ArrayList<BeanCurso> listacurso = new ArrayList<BeanCurso>();
        
        String ciclo = idciclo==""?"=idciclo":" LIKE '"+idciclo+"'";               
        String code = codigo==""?"=codigo":" LIKE '%"+codigo+"%'";
        String name = nombre==""?"=nombre":" LIKE '%"+nombre+"%'";
        
            System.out.println(ciclo);
            System.out.println(code);
            System.out.println(name);
        
        try {

            String query = "select * from curso "
                    + "WHERE idciclo " + ciclo + " and codigo " + code + " and nombre " + name +"";
            
            pstmt = conn.prepareStatement(query);
            

             
            
            System.out.println(query);
            res = pstmt.executeQuery();
            BeanCurso curso;
            
            while (res.next())
            {
               curso = new BeanCurso();
               curso.setIdcurso(res.getInt(1));
               curso.setCodigo(res.getString(2));
               curso.setNombre(res.getString(3));         
               curso.setIdciclo(res.getString(4));
               curso.setProfesor(res.getString(5));
                
               listacurso.add(curso);
            }

            res.close();
            pstmt.close();
            conn.close();

        } catch (SQLException ex) {
            ex.getMessage();
        }
        
        return listacurso;
    }
    
    public BeanCurso get(int id) {

        this.init_mysql();
        PreparedStatement pstmt = null;
        ResultSet res = null;
        BeanCurso curso = new BeanCurso();

        try {

            String query = "SELECT * FROM curso WHERE idcurso=" + id;

            pstmt = conn.prepareStatement(query);
            res = pstmt.executeQuery();

            while (res.next()) {
                curso.setIdcurso(res.getInt(1));
                curso.setCodigo(res.getString(2));
                curso.setNombre(res.getString(3));
                curso.setIdciclo(res.getString(4));
                curso.setProfesor(res.getString(5));
                  
            }

            res.close();
            pstmt.close();
            conn.close();

        } catch (SQLException e1) {
            e1.getMessage();
        }

        return curso;

    }

    public void update(BeanCurso curso) {

        this.init_mysql();
        PreparedStatement pstmt = null;
        ResultSet res = null;

        try {

            String query = "UPDATE curso SET nombre='" + curso.getNombre() + "', codigo='" + curso.getCodigo() + "', idciclo='" + curso.getIdciclo() +"', profesor='" + curso.getProfesor() +"' WHERE idcurso=" + curso.getIdcurso();
            pstmt = conn.prepareStatement(query);
            pstmt.executeUpdate();
            pstmt.close();
            conn.close();

        } catch (SQLException e1) {
            e1.getMessage();
        }

    }

    public void insert(BeanCurso curso) {

        this.init_mysql();
        PreparedStatement pstmt = null;
        ResultSet res = null;

        try {

            String query = "INSERT into curso(codigo,nombre, idciclo, profesor) values('" + curso.getCodigo() + "','" + curso.getNombre() + "','" + curso.getIdciclo() +"','" + curso.getProfesor() +"')";
            pstmt = conn.prepareStatement(query);
            pstmt.executeUpdate();
            pstmt.close();
            conn.close();

        } catch (SQLException e1) {
            e1.getMessage();
        }

    }

    public void delete(int id) {

        this.init_mysql();
        PreparedStatement pstmt = null;
        ResultSet res = null;

        try {

            String query = "DELETE FROM curso WHERE idcurso=" + id;
            pstmt = conn.prepareStatement(query);
            pstmt.executeUpdate();
            pstmt.close();
            conn.close();

        } catch (SQLException e1) {
            e1.getMessage();
        }

    }
    
    public String obtenerNombre(String idcurso){
        String name=null;
        
        this.init_mysql();
        PreparedStatement pstmt = null;
        ResultSet res = null;
        

        try {

            String query = "SELECT nombre FROM curso"
                    + " WHERE idcurso=" + idcurso ;

            pstmt = conn.prepareStatement(query);
            res = pstmt.executeQuery();
            while (res.next()) {
                name=res.getString(1);
               

            }
            res.close();
            pstmt.close();
            conn.close();

        } catch (SQLException e1) {
            e1.getMessage();
        }
        
        return name;
    }
    
}
